package 算法.leetcode.offer;

import java.util.Arrays;

/**
 * 输入一个整数数组，实现一个函数来调整该数组中数字的顺序，使得所有奇数在数组的前半部分，所有偶数在数组的后半部分。
 *
 *  
 *
 * 示例：
 *
 * 输入：nums = [1,2,3,4]
 * 输出：[1,3,2,4]
 * 注：[3,1,2,4] 也是正确的答案之一。
 *
 * @author lchenglong
 * @date 2022/3/18
 */
public class Offer21 {

    public static void main(String[] args) {
        int[] arr = new int[]{1, 2, 3, 4};
        Offer21 instance = new Offer21();
        int[] exchange = instance.exchange(arr);
        System.out.println(Arrays.toString(exchange));
    }

    public int[] exchange(int[] nums) {
        if (nums == null || nums.length == 1) return nums;
        for (int i = 0, j = nums.length - 1; i < j; ) {
            if (nums[i] % 2 == 1) {
                i++;
                continue;
            } else if (nums[j] % 2 == 0) {
                j--;
                continue;
            } else {
                int tmp = nums[i];
                nums[i] = nums[j];
                nums[j] = tmp;
                i++;
                j--;
            }
        }
        return nums;
    }
}
